<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Assimp: aiNodeAnim Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Assimp
   &#160;<span id="projectnumber">v3.0 (July 2012)</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="structai_node_anim.html#pub-methods">Public Member Functions</a> &#124;
<a href="structai_node_anim.html#pub-attribs">Public Attributes</a>  </div>
  <div class="headertitle">
<div class="title">aiNodeAnim Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Describes the animation of a single node.  
 <a href="structai_node_anim.html#details">More...</a></p>

<p><a href="structai_node_anim-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a84eeb5f28dc00c3dab87d9f6f5ce20c4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#a84eeb5f28dc00c3dab87d9f6f5ce20c4">aiNodeAnim</a> ()</td></tr>
<tr class="memitem:a5d6a0e98630000eded220759b7fb2f04"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#a5d6a0e98630000eded220759b7fb2f04">~aiNodeAnim</a> ()</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a1471759f073840f9aa7001f866b41780"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structai_string.html">aiString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#a1471759f073840f9aa7001f866b41780">mNodeName</a></td></tr>
<tr class="memdesc:a1471759f073840f9aa7001f866b41780"><td class="mdescLeft">&#160;</td><td class="mdescRight">The name of the node affected by this animation.  <a href="structai_node_anim.html#a1471759f073840f9aa7001f866b41780"></a><br/></td></tr>
<tr class="memitem:aab725313d31db70adab778a3c125103f"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#aab725313d31db70adab778a3c125103f">mNumPositionKeys</a></td></tr>
<tr class="memdesc:aab725313d31db70adab778a3c125103f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of position keys.  <a href="structai_node_anim.html#aab725313d31db70adab778a3c125103f"></a><br/></td></tr>
<tr class="memitem:aca7c78b89c4c64dcdf7619e105e0708c"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#aca7c78b89c4c64dcdf7619e105e0708c">mNumRotationKeys</a></td></tr>
<tr class="memdesc:aca7c78b89c4c64dcdf7619e105e0708c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of rotation keys.  <a href="structai_node_anim.html#aca7c78b89c4c64dcdf7619e105e0708c"></a><br/></td></tr>
<tr class="memitem:a28fa0fd84571ac79cb45a537192738f6"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#a28fa0fd84571ac79cb45a537192738f6">mNumScalingKeys</a></td></tr>
<tr class="memdesc:a28fa0fd84571ac79cb45a537192738f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of scaling keys.  <a href="structai_node_anim.html#a28fa0fd84571ac79cb45a537192738f6"></a><br/></td></tr>
<tr class="memitem:acdd7b5435b0483f74f0405f9171c69fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structai_vector_key.html">aiVectorKey</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#acdd7b5435b0483f74f0405f9171c69fd">mPositionKeys</a></td></tr>
<tr class="memdesc:acdd7b5435b0483f74f0405f9171c69fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The position keys of this animation channel.  <a href="structai_node_anim.html#acdd7b5435b0483f74f0405f9171c69fd"></a><br/></td></tr>
<tr class="memitem:a331ed6a78eb63917945faf29b4fb9cd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="anim_8h.html#a201b9e9429b82cd6423ff4a4daf01cef">aiAnimBehaviour</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#a331ed6a78eb63917945faf29b4fb9cd6">mPostState</a></td></tr>
<tr class="memdesc:a331ed6a78eb63917945faf29b4fb9cd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines how the animation behaves after the last key was processed.  <a href="structai_node_anim.html#a331ed6a78eb63917945faf29b4fb9cd6"></a><br/></td></tr>
<tr class="memitem:a442a57fd1a7508fe3d088355c3714a3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="anim_8h.html#a201b9e9429b82cd6423ff4a4daf01cef">aiAnimBehaviour</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#a442a57fd1a7508fe3d088355c3714a3d">mPreState</a></td></tr>
<tr class="memdesc:a442a57fd1a7508fe3d088355c3714a3d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines how the animation behaves before the first key is encountered.  <a href="structai_node_anim.html#a442a57fd1a7508fe3d088355c3714a3d"></a><br/></td></tr>
<tr class="memitem:ab6339e0f9445a8aede710662c94cb54b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structai_quat_key.html">aiQuatKey</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#ab6339e0f9445a8aede710662c94cb54b">mRotationKeys</a></td></tr>
<tr class="memdesc:ab6339e0f9445a8aede710662c94cb54b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The rotation keys of this animation channel.  <a href="structai_node_anim.html#ab6339e0f9445a8aede710662c94cb54b"></a><br/></td></tr>
<tr class="memitem:a6bc961cfd8cd7fe76830d21b0ee938ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structai_vector_key.html">aiVectorKey</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structai_node_anim.html#a6bc961cfd8cd7fe76830d21b0ee938ec">mScalingKeys</a></td></tr>
<tr class="memdesc:a6bc961cfd8cd7fe76830d21b0ee938ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">The scaling keys of this animation channel.  <a href="structai_node_anim.html#a6bc961cfd8cd7fe76830d21b0ee938ec"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Describes the animation of a single node. </p>
<p>The name specifies the bone/node which is affected by this animation channel. The keyframes are given in three separate series of values, one each for position, rotation and scaling. The transformation matrix computed from these values replaces the node's original transformation matrix at a specific time. This means all keys are absolute and not relative to the bone default pose. The order in which the transformations are applied is</p>
<ul>
<li>as usual - scaling, rotation, translation.</li>
</ul>
<dl class="section note"><dt>Note:</dt><dd>All keys are returned in their correct, chronological order. Duplicate keys don't pass the validation step. Most likely there will be no negative time values, but they are not forbidden also ( so implementations need to cope with them! ) </dd></dl>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a84eeb5f28dc00c3dab87d9f6f5ce20c4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">aiNodeAnim::aiNodeAnim </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a5d6a0e98630000eded220759b7fb2f04"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">aiNodeAnim::~aiNodeAnim </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a1471759f073840f9aa7001f866b41780"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structai_string.html">aiString</a> aiNodeAnim::mNodeName</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The name of the node affected by this animation. </p>
<p>The node must exist and it must be unique. </p>

</div>
</div>
<a class="anchor" id="aab725313d31db70adab778a3c125103f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int aiNodeAnim::mNumPositionKeys</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The number of position keys. </p>

</div>
</div>
<a class="anchor" id="aca7c78b89c4c64dcdf7619e105e0708c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int aiNodeAnim::mNumRotationKeys</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The number of rotation keys. </p>

</div>
</div>
<a class="anchor" id="a28fa0fd84571ac79cb45a537192738f6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int aiNodeAnim::mNumScalingKeys</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The number of scaling keys. </p>

</div>
</div>
<a class="anchor" id="acdd7b5435b0483f74f0405f9171c69fd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structai_vector_key.html">aiVectorKey</a>* aiNodeAnim::mPositionKeys</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The position keys of this animation channel. </p>
<p>Positions are specified as 3D vector. The array is mNumPositionKeys in size.</p>
<p>If there are position keys, there will also be at least one scaling and one rotation key. </p>

</div>
</div>
<a class="anchor" id="a331ed6a78eb63917945faf29b4fb9cd6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="anim_8h.html#a201b9e9429b82cd6423ff4a4daf01cef">aiAnimBehaviour</a> aiNodeAnim::mPostState</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Defines how the animation behaves after the last key was processed. </p>
<p>The default value is aiAnimBehaviour_DEFAULT (the original transformation matrix of the affected node is taken). </p>

</div>
</div>
<a class="anchor" id="a442a57fd1a7508fe3d088355c3714a3d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="anim_8h.html#a201b9e9429b82cd6423ff4a4daf01cef">aiAnimBehaviour</a> aiNodeAnim::mPreState</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Defines how the animation behaves before the first key is encountered. </p>
<p>The default value is aiAnimBehaviour_DEFAULT (the original transformation matrix of the affected node is used). </p>

</div>
</div>
<a class="anchor" id="ab6339e0f9445a8aede710662c94cb54b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structai_quat_key.html">aiQuatKey</a>* aiNodeAnim::mRotationKeys</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The rotation keys of this animation channel. </p>
<p>Rotations are given as quaternions, which are 4D vectors. The array is mNumRotationKeys in size.</p>
<p>If there are rotation keys, there will also be at least one scaling and one position key. </p>

</div>
</div>
<a class="anchor" id="a6bc961cfd8cd7fe76830d21b0ee938ec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structai_vector_key.html">aiVectorKey</a>* aiNodeAnim::mScalingKeys</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The scaling keys of this animation channel. </p>
<p>Scalings are specified as 3D vector. The array is mNumScalingKeys in size.</p>
<p>If there are scaling keys, there will also be at least one position and one rotation key. </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="anim_8h.html">anim.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jul 10 2012 17:55:53 for Assimp by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.1
</small></address>
</body>
</html>
